﻿#pragma once

namespace DarkMoonUI {
    enum ZY窗口风格 {
        ZY窗口风格_需要TAB键   = 1,
        ZY窗口风格_需要回车键  = 2
    };
    enum 开始位置 {
        开始位置_手动        =          0, //由指定的XY决定
        开始位置_居中屏幕    =          1,
        开始位置_居中父窗口  =          2
    };
    enum 窗口位置 {
        窗口位置_通常 =    0,
        窗口位置_最小化 =  1,
        窗口位置_最大化 =  2,
        窗口位置_居中 =    3
    };
    enum 窗口边框 {
        窗口边框_无边框 = 0,
        窗口边框_普通可调边框 = 1,
        窗口边框_普通固定边框 = 2,
        窗口边框_窄标题可调边框= 3,
        窗口边框_窄标题固定边框= 4,
        窗口边框_镜框式可调边框= 5,
        窗口边框_镜框式固定边框= 6
    };
    enum 控件边框 {

        控件边框_无边框 = 0,
        控件边框_凹入式 = 1,
        控件边框_突出式 = 2,
        控件边框_浅凹入式 = 3,
        控件边框_镜框式 = 4,
        控件边框_单线边框式 = 5
    };
    enum 线性布局模式 {
        线性布局模式_水平 = 0,
        线性布局模式_垂直 = 1
    };
    enum 线性布局对齐 {
        线性布局对齐_错误 = -1,
        线性布局对齐_拉伸 = 0,
        线性布局对齐_左下 = 1,//左上
        线性布局对齐_下中 = 2,//上中
        线性布局对齐_右下 = 3,//右上
        线性布局对齐_左中 = 4,
        线性布局对齐_居中 = 5,
        线性布局对齐_右中 = 6,
        线性布局对齐_左上 = 7,
        线性布局对齐_上中 = 8,
        线性布局对齐_右上 = 9,
        线性布局对齐_无对齐  = 10
    };
    enum 图片显示方式 {
        图片显示方式_平铺 = 0,
        图片显示方式_左上 = 1,
        图片显示方式_缩放 = 2,
        图片显示方式_居中 = 3
    };
    /*enum class 窗口边框 : int
    {
        错误 = -1,
        无边框 = 0,
        普通可调边框 = 1,
        普通固定边框 = 2,
        窄标题可调边框 = 3,
        窄标题固定边框 = 4,
        镜框式可调边框 = 5,
        镜框式固定边框 = 6
    };*/
    // 对齐方式枚举
    enum Align {
        AlignFill = 0,   // 铺满
        AlignBottomLeft = 1,
        AlignBottomCenter = 2,
        AlignBottomRight = 3,
        AlignMiddleLeft = 4,
        AlignMiddleCenter = 5,
        AlignMiddleRight = 6,
        AlignTopLeft = 7,
        AlignTopCenter = 8,
        AlignTopRight = 9
    };
    // 图文相对位置枚举
    enum TextImageRelation {
        ImageOverText,       // 覆盖
        ImageBeforeText,     // 图左文右
        ImageAfterText,      // 图右文左
        ImageAboveText,      // 图上文下
        ImageBelowText       // 图下文上
    };
#define 排序方式_不排序 0
#define 排序方式_文本排序 1
#define 排序方式_数字排序 2
#define 排序方式_时间排序 3

#define 超列类型_大图标 0
#define 超列类型_小图标 1
#define 超列类型_普通列表 2
#define 超列类型_报表列表 3

#define 属性类型_未知 0
#define 属性类型_分组 1 //PGTYPE_Group
#define 属性类型_文本 2 //PGTYPE_Text
#define 属性类型_长文本 3 //PGTYPE_LongText
#define 属性类型_列表 4 //PGTYPE_List
#define 属性类型_逻辑 5 //PGTYPE_Bool
#define 属性类型_标志位 6 //PGTYPE_Flags
#define 属性类型_颜色 7 //PGTYPE_Color
#define 属性类型_字体 8 //PGTYPE_Font
#define 属性类型_图片 9 //PGTYPE_Image
#define 属性状态_收缩 0
#define 属性状态_扩展 1
#define 属性状态_只读 2

#define 工具条图片组_通常 0
#define 工具条图片组_点燃 1
#define 工具条图片组_禁止 2

#define 图片组创建_16色 16 //16色
#define 图片组创建_24色 24 //24色
#define 图片组创建_32色 32 //32色
#define 图片组创建_4色 4 //4色
#define 图片组创建_8色 8 //8色
#define 图片组创建_掩码 1 //掩模
#define 图片组复制_移动 0 //移动
#define 图片组复制_交换 1 //交换
#define 图片组文件_图标 1
#define 图片组文件_位图 0

#define 树型框插入项目_根部 1
#define 树型框插入项目_首部 2
#define 树型框插入项目_尾部 3
#define 树型框插入项目_字母顺序 4

#define zyLYM_LAYOUT  1025
#define zyLYM_SETSIZE  1026
#define zyLYM_GETMINSIZE  1027
#define zyLayoutType_Layout 1

#define zyRGB2ARGB(rgb, a) ((COLORREF)(BYTE(GetRValue(rgb)) << 16 | BYTE(GetGValue(rgb)) << 8 | BYTE(GetBValue(rgb)) | (a << 24)))
#define zyARGB2RGB(argb, alpha) ((((argb) & 0xFF000000) != alpha) ? (argb) : ((argb) & 0xFFFFFF))

}

